* Idea 1
- inperformant way: use many bitvectors of size 1000x1000 and perform bitwise operations on them
  - keep already claimed squares/inches in an extra bitvector
  - keep conflicting squares in another bitvector
  - logical and with already claimed
  - update conflicting squares vector

* Idea 2
- count claims for as big as an array that is needed
- only need to keep one array and update the counts in it
- at the end count how many array elements are > 1
- perhaps a double pass on the input data to determin the size of the array

* Idea 3
- do not use an array but instead a sparse data structure and update counts like in idea 2
* Idea 4

1. figure out how big the array needs to be at maximum, representing the fabric
2. for each elf mark array elements as used if they are in the square the elf claims
   1. if an element is already claimed leave it claimed
3. if an elf claims the same space mark elements in a second array as doubly claimed
4. at the end count doubly claimed array elements (sum of 1s)
